001 /**
002 * Created by IntelliJ IDEA.
003 * User: Wei Wang
004 * Date: Nov 30, 2002
005 * Time: 2:11:24 PM
006 */
007
008 package EVolve.visualization.XYViz.ValValViz;
009
010 import EVolve.visualization.XYViz.XYVisualization;
011 import EVolve.visualization.*;
012 import EVolve.visualization.Dimension;
013 import EVolve.visualization.VizFactory.VisualizationFactory;
014 import EVolve.util.predefinedutils.VizInfo;
015 import EVolve.data.*;
016 import EVolve.Scene;
017 import EVolve.exceptions.VizInfoCreateException;
018 import EVolve.exceptions.NoDataPlotException;
019
020 import javax.swing.*;
021 import java.util.*;
022 import java.util.StringTokenizer;
023
024 public abstract class ValueValueVisualization extends XYVisualization{
025 protected ValueDimension xAxis,yAxis;
026 protected ReferenceDimension entityIdFilter,filter2; // use to decide color of a dot
027 protected int subjectIndex;
028 protected long beginCall, endCall;
029
030 public ReferenceDimension getLinkableDimension(int dim) {
031 return null;
032 }
033
034 public void sort() {
035 try {
036 canvas.setImage(image.getImage());
037 canvas.repaint();
038 enableBrowseSourceMenu();
039 } catch (NoDataPlotException e) {
040 Scene.showErrorMessage(e.getMessage());
041 }
042 }
043
044 public void preVisualize() {
045 timeMap.clear();
046 xOffset = -1;
047 timeMap.clear();
048 }
049
050 public HashMap getCurrentConfigure() {
051 try {
052 HashMap configure = super.getCurrentConfigure();
053
054 VizInfo vizInfo = new VizInfo();
055 vizInfo.setFactory((VisualizationFactory)configure.get("Factory"));
056 vizInfo.setSubject((ElementDefinition)configure.get("Subject"));
057
058 String[] dimensionDefs = new String[dimension.length];
059 for (int i=0; i<dimension.length; i++) {
060 dimensionDefs[i] = dimension[i].getName() ;
061 }
062 configure.put("Dimension",vizInfo.createDimension(dimensionDefs));
063
064 return configure;
065 } catch (VizInfoCreateException e) {
066 Scene.showErrorMessage(e.getMessage());
067 }
068 return null;
069 }
070
071 public void autoUpdateConfiguration(HashMap config) {
072 super.autoUpdateConfiguration(config);
073
074 if (config.get("BeginCall")!=null) {
075 beginCall = ((Long)(config.get("BeginCall"))).longValue();
076 }
077 if (config.get("EndCall")!=null) {
078 endCall = ((Long)(config.get("EndCall"))).longValue();
079 }
080 }
081
082 public void updateMenu() {
083 super.updateMenu();
084
085 MenuElement[] menus = popup.getSubElements();
086 String [] toBeDeleted = {"Sort"};
087
088 for (int i=0; i<toBeDeleted.length; i++) {
089 for (int j=0; j<menus.length; j++) {
090 if (((JMenuItem)menus[j]).getText().indexOf(toBeDeleted[i]) != -1)
091 popup.remove(j);
092 }
093 }
094 }
095
096 protected void getSelection() {
097 Selection selection = Scene.getFilter().getActiveSelection();
098
099 if (selection != null) {
100 beginCall = 0;
101 endCall = Integer.MAX_VALUE/2;
102 }
103 }
104
105 protected String getEntityUnderMouse() {
106 return null;
107 }
108
109 protected void changeOrientation() {
110 }
111
112 protected long[] findEventInterval(long startTime, long endTime) {
113 long time[] = new long[2], event[] = new long[2];
114 time[0] = startTime;
115 time[1] = endTime;
116 event[0] = 0;
117 event[1] = Long.MAX_VALUE;
118
119 if (timeMap != null) {
120 for (int i=0; i<time.length; i++) {
121 long lastTarget = -1;
122 for (int j = 0; j< timeMap.size(); j++) {
123 long[] map = (long[])timeMap.get(j);
124 if ((lastTarget<= time[i])&&(map[0]>=time[i])) {
125 event[i] = map[1];
126 break;
127 }
128 }
129 }
130 }
131 return event;
132 }
133
134 public Object clone() {
135 ValueValueVisualization o = null;
136 o = (ValueValueVisualization)super.clone();
137
138 o.xAxis = (ValueDimension)xAxis.clone();
139 o.yAxis = (yAxis == null) ? null : (ValueDimension)yAxis.clone();
140 o.entityIdFilter = (entityIdFilter == null) ? null : (ReferenceDimension)entityIdFilter.clone();
141 o.filter2 = (filter2 == null) ? null : (ReferenceDimension)filter2.clone();
142 o.panelConfiguration = o.createConfigurationPanel();
143 o.createMenu();
144 return o;
145 }
146 }